<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
    <input type="text" placeholder="员工姓名" v-model="e.name">
    <input type="text" placeholder="员工工资" v-model="e.sal">
    <input type="text" placeholder="员工工作" v-model="e.job">
    <input type="button" value="添加员工" @click="add()">
    <table border="1">
        <caption>员工信息</caption>
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>工资</th>
            <th>工作</th>
            <th>操作</th>
            <th>修改</th>
        </tr>
        <tr v-for="(emp,i) in arr" align="center">
            <td>{{i + 1}}</td>
            <td>{{emp.name}}</td>
            <td>{{emp.sal}}</td>
            <td>{{emp.job}}</td>
            <td><input type="button" value="删除" @click="del(i)"></td>
            <td><input type="button" value="修改" @click="upd(i)"></td>
        </tr>
    </table>
</div>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<script>
    let v = new Vue({
        el: "body>div",
        data: {
            e: {name: "", sal: "", job: ""},
            arr: [{name: "张三", sal: "3000", job: "销售"},
                {name: "李四", sal: "4000", job: "人事"}]
        },
        methods: {
            add() {
                //创建一个新对象 数据来自于双向绑定的员工对象e(不创建新的对象表格中新加的会跟着改变)
                v.arr.push({name: v.e.name, sal: v.e.sal, job: v.e.job})
            },
            del(i) {
                //数组中删除元素  splice(位置,数量)
                v.arr.splice(i, 1);
            },
            upd(i) {
                /*数组变更检测注意事项：
                由于 JavaScript 的限制，Vue 不能检测以下数组的变动：
                1.当你利用索引直接设置一个数组项时，例如：vm.items[indexOfItem] = newValue
                2.当你修改数组的长度时，例如：vm.items.length = newLength
                */
                //v.arr[i] = v.e;
                v.arr[i].name=v.e.name;
                v.arr[i].sal=v.e.sal;
                v.arr[i].job=v.e.job;
            }
        }
    })
</script>
</body>
</html>